home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / snip9_91.arc / MOUSE3.C < prev    next >
C/C++ Source or Header  |  1991-09-17  |  1KB  |  54 lines

  1. /*
  2. **  by: Rob de Voer
  3. */
  4.  
  5. #include <dos.h>
  6. #define MOUSE_INT        0x33
  7.  
  8. static union REGS mouse_regs;
  9.  
  10. /* static function for mouse-interrupt */
  11. static void mouse_int(int fn)
  12. {
  13.       mouse_regs.x.ax = fn;
  14.       int86(MOUSE_INT, &mouse_regs, &mouse_regs);
  15. }
  16.  
  17. /* check if vector for mouse is installed. DRIVER present */
  18. int ms_check(void)
  19. {
  20.       if ((long)getvect(MOUSE_INT))]
  21.             return 1;
  22.       else  return 0;
  23. }
  24.  
  25. /* reset and check mouse. return -1 if MOUSE present, 0 if not.
  26.    return number of buttons through butt */
  27. int ms_reset(int *butt)
  28. {
  29.       mouse_int(0);
  30.       *butt = mouse_regs.x.bx;
  31.       return mouse_regs.x.ax;
  32. }
  33.  
  34. /* enable mouse-cursor */
  35. void ms_on(void)
  36. {
  37.       mouse_int(1);
  38. }
  39.  
  40. /* disable mouse-cursor */
  41. void ms_off(void)
  42. {
  43.       mouse_int(2);
  44. }
  45.  
  46. /* read mouse position and button state */
  47. void ms_stat(int *mx, int *my, int *mb)
  48. {
  49.       mouse_int(3);
  50.       *mx = mouse_regs.x.cx;
  51.       *my = mouse_regs.x.dx;
  52.       *mb = mouse_regs.x.bx;
  53. }
  54.